@@ -19,6 +19,7 @@ from django.utils.timezone import utc |
||
| 19 | 19 |
from account.models import UserInfo |
| 20 | 20 |
from integral.models import SaleclerkSubmitLogInfo |
| 21 | 21 |
from logs.models import MchInfoEncryptLogInfo |
| 22 |
+from coupon.models import UserCouponInfo |
|
| 22 | 23 |
from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, SaleclerkInfo |
| 23 | 24 |
from statistic.models import (ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo, |
| 24 | 25 |
ModelSaleStatisticInfo) |
@@ -141,6 +142,34 @@ def userinfo(request): |
||
| 141 | 142 |
|
| 142 | 143 |
|
| 143 | 144 |
@logit |
| 145 |
+def query_usercoupons(request): |
|
| 146 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
| 147 |
+ admin_id = request.POST.get('admin_id', '')
|
|
| 148 |
+ user_id = request.POST.get('user_id', '')
|
|
| 149 |
+ |
|
| 150 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
| 151 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
| 152 |
+ |
|
| 153 |
+ # 校验用户是否存在 |
|
| 154 |
+ try: |
|
| 155 |
+ user = UserInfo.objects.get(user_id=user_id) |
|
| 156 |
+ except UserInfo.DoesNotExist: |
|
| 157 |
+ return response(UserStatusCode.USER_NOT_FOUND) |
|
| 158 |
+ |
|
| 159 |
+ try: |
|
| 160 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
| 161 |
+ except AdministratorInfo.DoesNotExist: |
|
| 162 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
| 163 |
+ |
|
| 164 |
+ coupons = UserCouponInfo.objects.filter(brand_id=administrator.brand_id, user_id=user_id, status=True).order_by('-created_at')
|
|
| 165 |
+ coupons = [coupon.admindata for coupon in coupons] |
|
| 166 |
+ print coupons |
|
| 167 |
+ |
|
| 168 |
+ return response(200, 'User Coupon Success', u'用户劵列表获取成功', data={
|
|
| 169 |
+ 'coupons': coupons, |
|
| 170 |
+ }) |
|
| 171 |
+ |
|
| 172 |
+@logit |
|
| 144 | 173 |
def query_usergoods(request): |
| 145 | 174 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
| 146 | 175 |
admin_id = request.POST.get('admin_id', '')
|
@@ -297,6 +297,7 @@ urlpatterns += [ |
||
| 297 | 297 |
|
| 298 | 298 |
url(r'^admin/userinfo$', admin_views.userinfo, name='userinfo'), |
| 299 | 299 |
url(r'^admin/query_usergoods$', admin_views.query_usergoods, name='query_usergoods'), |
| 300 |
+ url(r'^admin/query_usercoupons$', admin_views.query_usercoupons, name='query_usercoupons'), |
|
| 300 | 301 |
url(r'^admin/query_userinfo$', admin_views.query_userinfo, name='query_userinfo'), |
| 301 | 302 |
url(r'^admin/userinfo_update$', admin_views.userinfo_update, name='userinfo_update'), |
| 302 | 303 |
|
@@ -117,6 +117,16 @@ class UserCouponInfo(BaseModelMixin): |
||
| 117 | 117 |
if not self.expire_at: |
| 118 | 118 |
return False |
| 119 | 119 |
return tc.utc_datetime() > self.expire_at |
| 120 |
+ |
|
| 121 |
+ @property |
|
| 122 |
+ def coupon_source(self): |
|
| 123 |
+ if self.coupon_from == 'INTEGRAL_MALL': |
|
| 124 |
+ return '积分商城'.encode('utf-8')
|
|
| 125 |
+ elif self.coupon_from == 'MEMBER_BENEFITS': |
|
| 126 |
+ return '会员权益'.encode('utf-8')
|
|
| 127 |
+ elif self.coupon_from == 'PROMOTION': |
|
| 128 |
+ return self.activity_name |
|
| 129 |
+ return '' |
|
| 120 | 130 |
|
| 121 | 131 |
@property |
| 122 | 132 |
def data(self): |
@@ -138,5 +148,29 @@ class UserCouponInfo(BaseModelMixin): |
||
| 138 | 148 |
'has_expired': self.has_expired, |
| 139 | 149 |
'has_used': self.has_used, |
| 140 | 150 |
'admin_id': self.admin_id, |
| 151 |
+ 'used_at': self.used_at |
|
| 152 |
+ } |
|
| 153 |
+ |
|
| 154 |
+ @property |
|
| 155 |
+ def admindata(self): |
|
| 156 |
+ return {
|
|
| 157 |
+ 'user_coupon_id': self.user_coupon_id, |
|
| 158 |
+ 'coupon_id': self.coupon_id, |
|
| 159 |
+ 'user_id': self.user_id, |
|
| 160 |
+ 'coupon_title': self.coupon_title, |
|
| 161 |
+ 'coupon_value': self.coupon_value, |
|
| 162 |
+ 'coupon_image_url': self.coupon_image_url, |
|
| 163 |
+ 'is_coupon_admin_writeoff': self.is_coupon_admin_writeoff, |
|
| 164 |
+ 'active_at': tc.local_string(utc_dt=self.active_at, format='%Y-%m-%d'), |
|
| 165 |
+ 'expire_at': tc.local_string(utc_dt=self.expire_at, format='%Y-%m-%d'), |
|
| 166 |
+ 'coupon_valid_period': self.coupon_valid_period, |
|
| 167 |
+ 'coupon_limit_model_ids': self.coupon_limit_model_ids, |
|
| 168 |
+ 'has_actived': self.has_actived, |
|
| 169 |
+ 'has_expired': self.has_expired, |
|
| 170 |
+ 'has_used': self.has_used, |
|
| 171 |
+ 'admin_id': self.admin_id, |
|
| 141 | 172 |
'used_at': self.used_at, |
| 173 |
+ 'coupon_from': self.activity_name if self.coupon_from == 'PROMOTION' else self.coupon_from, |
|
| 174 |
+ 'clerk_name': self.clerk_name, |
|
| 175 |
+ 'distributor_name': self.distributor_name, |
|
| 142 | 176 |
} |